package org.meb.conquest.web.services;

import java.util.List;

import org.meb.conquest.db.dao.Query;
import org.meb.conquest.db.model.loc.Card;
import org.meb.conquest.db.model.loc.CardSet;
import org.meb.conquest.db.model.loc.Domain;
import org.meb.conquest.db.query.CardQuery;

public interface SearchService {

	<T> T findUnique(T example);

	<T> List<T> find(T example);
	
	<T> T findUnique(Query<T> query);

	<T> List<T> find(Query<T> query);

	Card findUnique(Card example);

	List<Card> find(Card example);

	CardSet findUnique(CardSet example);

	List<CardSet> find(CardSet example);

	Domain findUnique(Domain example);

	List<Domain> find(Domain example);
	
	List<Card> findCards(CardQuery query);
}
